class Event {
  static LOAD = "load";
  static PREPARED = "prepared";
  static UPDATE = "update";
  static READY = "ready";
  static ADDED = "added";
  static ADD_TO_STAGE = "add_to_stage";
  static REMOVED = "removed";
  static REMOVE_FROM_STAGE = "remove_from_stage";
  static ANIMATION_BEGIN = "animation_begin";
  static ANIMATION_END = "animation_end";
  static RESIZE = "resize";
  static FINISH = "finish";
  static END = "end";
  static CHANGE = "change";
  // TODO:　e.prototype.constructor = e
  type = null;
  target = null;
  timeStamp = 0;
  constructor(e?, t?) {
    arguments.length >= 2 && ((this.target = e), (this.type = t)),
      (this.timeStamp = new Date().getTime());
  }
  clone(t) {
    return (t = arguments.length > 0 ? t : this.target), new Event(t, this.type);
  }
}

export default Event;
